/* MOS                                                        */
/* Giordano Mion, Luca David Opromolla and Alessandro Sforza  */
/* University of Sussex, Banco de Portugal & NC State, and Bologna       */




program drop _all
clear
clear matrix
capture log close
set more off
local path = "/Users/lucadavidopromolla/Projects/MOS_rev"
log using "`path'/logs/MOS_import_trade_Apr_11_2022_rev.log", replace
cd "`path'/data"
//cd "/Users/alessandrosforza/Dropbox/work/Projects/JMP/DatiPT/data/trade"
//log using "/Users/alessandrosforza/Dropbox/work/Projects/JMP/DatiPT/logs/MOS_import_trade_Apr_11_2022_rev.log",replace
set more off
clear
set mem 15g

/* Step 1. Import trade data */

forvalues i=1991/2007 {
import spss using "`path'/data/trade/trade_`i'.sav",clear
di "Year " `i'
keep COD_NATUR_TRANSAC VALOR_ESTATISTICO COD_PAIS COD_NUT2 NPC_FIC COD_FLUXO ANO COD_ARTIGO
rename COD_NATUR_TRANSAC nt
rename VALOR_ESTATISTICO v_est
rename COD_PAIS pais
rename COD_NUT2 cod_nut2
rename NPC_FIC npc_alt
rename COD_FLUXO fluxo
rename ANO ano
rename COD_ARTIGO nc
gen nut1_cod= substr(cod_nut2, 1,1)
replace nt="." if nt=="xx"
destring nt cod_nut2 nut1_cod fluxo ano nc,replace
if `i'==1991 {
save "`path'/computation/Tdata.dta",replace
}
else {
append using "`path'/computation/Tdata.dta"
save "`path'/computation/Tdata.dta",replace
}
local i = `i' + 1
}

/* Step 2.  check variables consistency over time */

su
tab ano nt
table ano, stat(min v_est) stat(max v_est) stat(mean v_est) stat(sd v_est) stat(p50 v_est)
tab ano nut1_cod
table ano, stat(min npc_alt) stat(max npc_alt) stat(mean npc_alt) stat(sd npc_alt) stat(p50 npc_alt)
table ano fluxo
table ano, stat(min nc) stat(max nc) stat(mean nc) stat(sd nc) stat(p50 nc)


/* Step 3.  drop observations */

keep if nt==11 /* keep sales transactions */
//keep if nut1_cod==1 /* keep continental Portugal */
drop nut1_cod cod_nut2 nt


/* Step 4.  make country variable consistent through time + convert it in numeric with labels */ 
/* Based on "/Users/lucadavidopromolla/Dropbox/MOS/stata/Using INE data/documents/country variable trade data.xls" */

if ano>=2000 {
gen double pais_cod=660 if pais=="AF"
replace pais_cod=070 if pais=="AL"
replace pais_cod=043 if pais=="AD"
replace pais_cod=330 if pais=="AO"
replace pais_cod=446 if pais=="AI"
replace pais_cod=890 if pais=="AQ"
replace pais_cod=459 if pais=="AG"
replace pais_cod=478 if pais=="AN"
replace pais_cod=632 if pais=="SA"
replace pais_cod=208 if pais=="DZ"
replace pais_cod=528 if pais=="AR"
replace pais_cod=474 if pais=="AW"
replace pais_cod=800 if pais=="AU"
replace pais_cod=038 if pais=="AT"
replace pais_cod=453 if pais=="BS"
replace pais_cod=666 if pais=="BD"
replace pais_cod=469 if pais=="BB"
replace pais_cod=640 if pais=="BH"
replace pais_cod=421 if pais=="BZ"
replace pais_cod=284 if pais=="BJ"
replace pais_cod=413 if pais=="BM"
replace pais_cod=516 if pais=="BO"
replace pais_cod=391 if pais=="BW"
replace pais_cod=508 if pais=="BR"
replace pais_cod=703 if pais=="BN"
replace pais_cod=068 if pais=="BG"
replace pais_cod=236 if pais=="BF"
replace pais_cod=328 if pais=="BI"
replace pais_cod=675 if pais=="BT"
replace pais_cod=247 if pais=="CV"
replace pais_cod=302 if pais=="CM"
replace pais_cod=696 if pais=="KH"
replace pais_cod=404 if pais=="CA"
replace pais_cod=644 if pais=="QA"
replace pais_cod=306 if pais=="CF"
replace pais_cod=244 if pais=="TD"
replace pais_cod=512 if pais=="CL"
replace pais_cod=720 if pais=="CN"
replace pais_cod=600 if pais=="CY"
replace pais_cod=045 if pais=="VA"
replace pais_cod=480 if pais=="CO"
replace pais_cod=375 if pais=="KM"
replace pais_cod=724 if pais=="KP"
replace pais_cod=728 if pais=="KR"
replace pais_cod=272 if pais=="CI"
replace pais_cod=436 if pais=="CR"
replace pais_cod=448 if pais=="CU"
replace pais_cod=008 if pais=="DK"
replace pais_cod=460 if pais=="DM"
replace pais_cod=220 if pais=="EG"
replace pais_cod=428 if pais=="SV"
replace pais_cod=647 if pais=="AE"
replace pais_cod=500 if pais=="EC"
replace pais_cod=011 if pais=="ES"
replace pais_cod=400 if pais=="US"
replace pais_cod=334 if pais=="ET"
replace pais_cod=815 if pais=="FJ"
replace pais_cod=708 if pais=="PH"
replace pais_cod=032 if pais=="FI"
replace pais_cod=001 if pais=="FR"
replace pais_cod=314 if pais=="GA"
replace pais_cod=252 if pais=="GM"
replace pais_cod=276 if pais=="GH"
replace pais_cod=044 if pais=="GI"
replace pais_cod=473 if pais=="GD"
replace pais_cod=009 if pais=="GR"
replace pais_cod=406 if pais=="GL"
replace pais_cod=416 if pais=="GT"
replace pais_cod=488 if pais=="GY"
replace pais_cod=260 if pais=="GN"
replace pais_cod=310 if pais=="GQ"
replace pais_cod=257 if pais=="GW"
replace pais_cod=452 if pais=="HT"
replace pais_cod=424 if pais=="HN"
replace pais_cod=740 if pais=="HK"
replace pais_cod=064 if pais=="HU"
replace pais_cod=463 if pais=="KY"
replace pais_cod=529 if pais=="FK"
replace pais_cod=806 if pais=="SB"
replace pais_cod=025 if pais=="FO"
replace pais_cod=454 if pais=="TC"
replace pais_cod=457 if pais=="VI"
replace pais_cod=664 if pais=="IN"
replace pais_cod=700 if pais=="ID"
replace pais_cod=616 if pais=="IR"
replace pais_cod=612 if pais=="IQ"
replace pais_cod=007 if pais=="IE"
replace pais_cod=024 if pais=="IS"
replace pais_cod=624 if pais=="IL"
replace pais_cod=005 if pais=="IT"
replace pais_cod=464 if pais=="JM"
replace pais_cod=732 if pais=="JP"
replace pais_cod=628 if pais=="JO"
replace pais_cod=812 if pais=="KI"
replace pais_cod=636 if pais=="KW"
replace pais_cod=684 if pais=="LA"
replace pais_cod=395 if pais=="LS"
replace pais_cod=604 if pais=="LB"
replace pais_cod=268 if pais=="LR"
replace pais_cod=216 if pais=="LY"
replace pais_cod=743 if pais=="MO"
replace pais_cod=370 if pais=="MG"
replace pais_cod=701 if pais=="MY"
replace pais_cod=386 if pais=="MW"
replace pais_cod=667 if pais=="MV"
replace pais_cod=232 if pais=="ML"
replace pais_cod=046 if pais=="MT"
replace pais_cod=204 if pais=="MA"
replace pais_cod=373 if pais=="MU"
replace pais_cod=228 if pais=="MR"
replace pais_cod=377 if pais=="YT"
replace pais_cod=412 if pais=="MX"
replace pais_cod=366 if pais=="MZ"
replace pais_cod=716 if pais=="MN"
replace pais_cod=672 if pais=="NP"
replace pais_cod=676 if pais=="MM"
replace pais_cod=432 if pais=="NI"
replace pais_cod=803 if pais=="NR"
replace pais_cod=240 if pais=="NE"
replace pais_cod=288 if pais=="NG"
replace pais_cod=028 if pais=="NO"
replace pais_cod=809 if pais=="NC"
replace pais_cod=804 if pais=="NZ"
replace pais_cod=649 if pais=="OM"
replace pais_cod=003 if pais=="NL"
replace pais_cod=442 if pais=="PA"
replace pais_cod=801 if pais=="PG"
replace pais_cod=662 if pais=="PK"
replace pais_cod=520 if pais=="PY"
replace pais_cod=504 if pais=="PE"
replace pais_cod=822 if pais=="PF"
replace pais_cod=060 if pais=="PL"
replace pais_cod=010 if pais=="PT"
replace pais_cod=346 if pais=="KE"
replace pais_cod=006 if pais=="GB"
replace pais_cod=456 if pais=="DO"
replace pais_cod=066 if pais=="RO"
replace pais_cod=324 if pais=="RW"
replace pais_cod=819 if pais=="WS"
replace pais_cod=329 if pais=="SH"
replace pais_cod=465 if pais=="LC"
replace pais_cod=449 if pais=="KN"
replace pais_cod=408 if pais=="PM"
replace pais_cod=311 if pais=="ST"
replace pais_cod=467 if pais=="VC"
replace pais_cod=248 if pais=="SN"
replace pais_cod=264 if pais=="SL"
replace pais_cod=355 if pais=="SC"
replace pais_cod=706 if pais=="SG"
replace pais_cod=608 if pais=="SY"
replace pais_cod=342 if pais=="SO"
replace pais_cod=669 if pais=="LK"
replace pais_cod=393 if pais=="SZ"
replace pais_cod=224 if pais=="SD"
replace pais_cod=030 if pais=="SE"
replace pais_cod=036 if pais=="CH"
replace pais_cod=492 if pais=="SR"
replace pais_cod=680 if pais=="TH"
replace pais_cod=736 if pais=="TW"
replace pais_cod=352 if pais=="TZ"
replace pais_cod=357 if pais=="IO"
replace pais_cod=280 if pais=="TG"
replace pais_cod=817 if pais=="TO"
replace pais_cod=472 if pais=="TT"
replace pais_cod=212 if pais=="TN"
replace pais_cod=052 if pais=="TR"
replace pais_cod=807 if pais=="TV"
replace pais_cod=350 if pais=="UG"
replace pais_cod=524 if pais=="UY"
replace pais_cod=816 if pais=="VU"
replace pais_cod=484 if pais=="VE"
replace pais_cod=690 if pais=="VN"
replace pais_cod=811 if pais=="WF"
replace pais_cod=378 if pais=="ZM"
replace pais_cod=382 if pais=="ZW"
replace pais_cod=318 if pais=="CG"
replace pais_cod=322 if pais=="CD"
replace pais_cod=338 if pais=="DJ"
replace pais_cod=813 if pais=="PN"
// deal with country aggregates
replace pais_cod=10000 if pais=="DE"
replace pais_cod=10001 if pais=="ZA" | pais=="NA"
replace pais_cod=10002 if pais=="CZ" | pais=="SK"
replace pais_cod=10003 if pais=="BE" | pais=="LU"
replace pais_cod=10004 if pais=="BY" | pais=="KZ" | pais=="EE" | pais=="GE" | pais=="LV" | pais=="LT" | pais=="MD" | pais=="ME" | pais=="KG" | pais=="RU" | pais=="TM" | pais=="UA" | pais=="UZ" | pais=="AM" | pais=="TJ" | pais=="AZ"
replace pais_cod=10005 if pais=="BA" | pais=="HR" | pais=="SI" | pais=="XK" | pais=="MK" | pais=="XS" 
replace pais_cod=10006 if pais=="XC" | pais=="XL"
replace pais_cod=10007 if pais=="VG" | pais=="MS"
replace pais_cod=10008 if pais=="YE"
}
gen pais_num = pais if ano<2000
destring pais_num,replace
replace pais_num = 10000 if (pais_num==4 | pais_num==58)
replace pais_num = 10001 if (pais_num==390)
replace pais_num = 10002 if (pais_num==62)
replace pais_num = 10003 if (pais_num==2)
replace pais_num = 10004 if (pais_num==56)
replace pais_num = 10005 if (pais_num==48)
replace pais_num = 10006 if (pais_num==22)
replace pais_num = 10007 if (pais_num==461)
replace pais_num = 10008 if (pais_num==652 | pais_num==656)
replace pais_cod=pais_num if ano<2000
replace pais_cod = . if (pais_num==458 | pais_num==496 | pais_num==462 | pais_num==21 | pais_num==808 | pais_num==802 | pais_num==814 | pais_num==372 | pais_num==958 | pais_num==977 | pais_num==950) & ano<2000

label define pais_cod 660 "AF" 070 "AL" 043 "AD" 330 "AO" 446 "AI" 890 "AQ" 459 "AG" 478 "AN" 632 "SA" 208 "DZ" 528 "AR" 474 "AW" 800 "AU" 038 "AT" 453 "BS" 666 "BD" 469 "BB" 640 "BH" 421 "BZ" 284 "BJ" 413 "BM" 516 "BO" 391 "BW" 508 "BR" 703 "BN" 068 "BG" 236 "BF" 328 "BI" 675 "BT" 247 "CV" 302 "CM" 696 "KH" 404 "CA" 644 "QA" 306 "CF" 244 "TD" 512 "CL" 720 "CN" 600 "CY" 045 "VA" 480 "CO" 375 "KM" 724 "KP" 728 "KR" 272 "CI" 436 "CR" 448 "CU" 008 "DK" 460 "DM" 220 "EG" 428 "SV" 647 "AE" 500 "EC" 011 "ES" 400 "US" 334 "ET" 815 "FJ" 708 "PH" 032 "FI" 001 "FR" 314 "GA" 252 "GM" 276 "GH" 044 "GI" 473 "GD" 009 "GR" 406 "GL" 416 "GT" 488 "GY" 260 "GN" 310 "GQ" 257 "GW" 452 "HT" 424 "HN" 740 "HK" 064 "HU" 463 "KY" 529 "FK" 806 "SB" 025 "FO" 454 "TC" 457 "VI" 664 "IN" 700 "ID" 616 "IR" 612 "IQ" 007 "IE" 024 "IS" 624 "IL" 005 "IT" 464 "JM" 732 "JP" 628 "JO" 812 "KI" 636 "KW" 684 "LA" 395 "LS" 604 "LB" 268 "LR" 216 "LY" 743 "MO" 370 "MG" 701 "MY" 386 "MW" 667 "MV" 232 "ML" 046 "MT" 204 "MA" 373 "MU" 228 "MR" 377 "YT" 412 "MX" 366 "MZ" 716 "MN" 672 "NP" 676 "MM" 432 "NI" 803 "NR" 240 "NE" 288 "NG" 028 "NO" 809 "NC" 804 "NZ" 649 "OM" 003 "NL" 442 "PA" 801 "PG" 662 "PK" 520 "PY" 504 "PE" 822 "PF" 060 "PL" 010 "PT" 346 "KE" 006 "GB" 456 "DO" 066 "RO" 324 "RW" 819 "WS" 329 "SH" 465 "LC" 449 "KN" 408 "PM" 311 "ST" 467 "VC" 248 "SN" 264 "SL" 355 "SC" 706 "SG" 608 "SY" 342 "SO" 669 "LK" 393 "SZ" 224 "SD" 030 "SE" 036 "CH" 492 "SR" 680 "TH" 736 "TW" 352 "TZ" 357 "IO" 280 "TG" 817 "TO" 472 "TT" 212 "TN" 052 "TR" 807 "TV" 350 "UG" 524 "UY" 816 "VU" 484 "VE" 690 "VN" 811 "WF" 378 "ZM" 382 "ZW" 318 "CG" 322 "CD" 338 "DJ" 813 "PN" 10000 "DE" 10001 "ZA" 10002 "CZ" 10003 "BELUX" 10004 "USSR" 10005 "YUGO" 10006 "CEUMEL" 10007 "VIR" 10008 "YE"
label values pais_cod pais_cod
drop pais pais_num
drop if pais_cod==.
collapse (sum) v_est,by(ano pais_cod fluxo npc_alt nc)
sort npc_alt ano

save "`path'/computation/Tdata.dta",replace



log close
